package com.ld.security.server.admin.modules.ge.service.impl;

import com.ld.security.server.admin.modules.ge.entity.GeFieldEntity;
import com.ld.security.server.admin.modules.ge.mapping.IGeColumnMapping;
import com.ld.security.server.admin.modules.ge.service.IGeFieldService;
import com.ld.security.server.admin.modules.gl.entity.GlEnumEntity;
import com.ld.security.server.admin.modules.gl.service.IGlEnumService;
import com.ld.security.common.core.base.column.MapJson;
import com.ld.security.common.core.util.ReflectionUtil;
import com.ld.security.common.mybatis.base.service.ISuperServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

@Service
@Transactional
class GeFieldServiceImpl extends ISuperServiceImpl<GeFieldEntity> implements
        IGeFieldService {

    @Autowired
    IGeColumnMapping iGeColumnMapping;

    @Autowired
    IGlEnumService iGlEnumService;

    static List<String> keys = Arrays.asList("Select", "SelectMany", "Cas", "Tree");

    @Override
    public int save(GeFieldEntity entity) {
//  GeColumnEntity geColumn =  iGeColumnMapping.selectById(entity.getColumnId());
//  entity.setColumnName(geColumn.getColumnName());
//  entity.setTableName(geColumn.getTableName());
    /*    if (keys.indexOf(entity.getInputType()) != -1) {
            GlEnumEntity enumEntity = iGlEnumService.getById(entity.getSelectConfig());
            Map map = enumEntity.getConfig().toMap("label", "value");
            MapJson config = entity.getConfig();
            if (config == null) {
                config = new MapJson();
            }
            map.remove("edit");
            config.putAll(map);
        }
*/
//if(entity.getSortVal() == null){
// entity.setSortVal(0);
//}
//if(ReflectionUtil.isNull(entity.getParentPath())){
// entity.setParentPath(new ListString(TreeEntity.root));
//}
        ReflectionUtil.fill(entity);
        return super.save(entity);
    }


}
